package com.condominio.control;

import java.util.List;

import com.condominio.model.Conta;
import com.condominio.model.Pessoa;
import com.condominio.dao.ContaDao;



public class ContaControl {

	ContaDao cDao = new ContaDao();

	public boolean cadastrarConta(Conta c) {
		try {
			if((c!=null)){

				cDao.begin();
				cDao.persist(c);
				cDao.commit();
				return true;
			}
			else
				return false;
		}
		catch(Exception e) {
			e.printStackTrace();
			return false;}
		finally{
			cDao.close();
		}		
	}

	public Conta findConta(Conta c){
		c = cDao.findContaById(c);
		return c;
	}


	public boolean atualizarConta(Conta c){
		try {
			cDao.begin();
			c=cDao.merge(c);
			cDao.commit();
			return true;

		} catch (Exception e) {
			return false;
		}
		finally{
			cDao.close();
		}
	}

	public List<Conta> findAllConta() {
		List<Conta> contas=cDao.findAllContas();
		return contas;
	}

	public List<Conta> findAllContaByPessoa(Pessoa p) {
		List<Conta> contas=cDao.findAllContasByPessoa(p);
		return contas;
	}
	public boolean excluirConta(Conta c) {
		try {
			cDao.begin();
			Conta co = new Conta();
			co = cDao.findContaById(c);

			if(co==null) {
				return false;
			}
			else{
				cDao.remove(co);
				cDao.flush();
				cDao.commit();
				return true;
			}
		}
		catch(Exception e) {

			return false;
		}
		finally {
			cDao.close();
		}


	}

	public List<Conta> findAllContaByPessoaAndStatus(Pessoa p, boolean status) {
		List<Conta> contas=cDao.findAllContasByPessoaAndStatus(p,status);
		return contas;
	}
	public List<Conta> findAllContaByTituloAndData(Conta c) {
		List<Conta> contas=cDao.findAllContaByTituloAndData(c);
		return contas;
	}
}



